____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Java-Hamster-Modell
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Das Java-Hamster-Modell gehΓΆrt zu den Minisprachen. Ziel des Modells ist es, ProgrammieranfΓ€ngern das Erlernen grundlegender Programmierkonzepte durch den Einsatz spielerischer Mittel zu erleichtern.
Das Modell orientiert sich an der Programmiersprache Java, ist aber grundsΓ€tzlich sprachunabhΓ€ngig. Mit einem minimalen Satz an Befehlen sollen Hamster-Programme geschrieben werden, die einen virtuellen Hamster durch eine Landschaft steuern und ihn Aufgaben lΓΆsen lassen. Grundlage des Modells ist der schrittweise Ablauf, der Programmierkonzepte aufeinander aufbauend einfΓΌhrt und diese durch zahlreiche Beispiele demonstriert.
Eine spezielle Entwicklungsumgebung, der sogenannte Hamster-Simulator, hilft bei der Entwicklung und visualisiert den Ablauf der selbstgeschriebenen Hamster-Programme. Er wurde bewusst an bekannte Entwicklungsumgebungen fΓΌr Java angelehnt und steht kostenlos zur VerfΓΌgung.
Contents
β’ Siehe auch
β’ Literatur
β’ Weblinks
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Imperative Programmierung
Im ersten Teil des Modells werden alle wesentlichen Konzepte der imperativen Programmierung schrittweise motiviert und eingefΓΌhrt, insbesondere Anweisungen, Kontrollstrukturen, Prozeduren, Funktionen, Typen, Variablen, AusdrΓΌcke, Parameter, Rekursion und der Programmentwurf.
Mit einigen Grundbefehlen wie linksUm() und nimm() und Abfragen wie vornFrei(), kornDa() oder maulLeer() steuert man den Hamster in einer vorgegebenen Landschaft. Der Anwender lernt, aus diesen Grundelementen Prozeduren zusammenzustellen, die komplexere Befehle erlauben.
BefehlsΓΌbersicht
| Befehle | Beschreibung | Typ |
|---|---|---|
| vor() | Der Hamster geht genau 1 Feld weiter. | void |
| linksUm() | Der Hamster dreht sich um 90Β° nach links. | void |
| nimm() | Der Hamster nimmt ein Korn auf. | void |
| gib() | Der Hamster legt ein Korn ab. | void |
| Testbefehl | Beschreibung | Typ |
|---|---|---|
| vornFrei() | Liefert TRUE, falls der Hamster nicht vor einer Wand steht. | boolean |
| kornDa() | Liefert TRUE, falls das Feld, auf dem der Hamster gerade steht, mindestens ein Korn enthΓ€lt. | boolean |
| maulLeer() | Liefert TRUE, falls der Hamster kein Korn im Maul hat. | boolean |
Objektorientierte Programmierung
Um das Konzept der objektorientierten Programmierung zu erklΓ€ren, kΓΆnnen nun mehrere Hamster erzeugt werden. Γber Vererbung kann die normale Hamsterklasse erweitert werden.
Zum Schluss lernen die Anwender, wie sie den Hamstern das Schach- oder Reversispielen beibringen kΓΆnnen. So soll gezeigt werden, wie die zuvor vorgestellten Konzepte auf komplexe Probleme angewandt werden kΓΆnnen.
Parallele Programmierung
WΓ€hrend die Hamster in der objektorientierten Programmierung explizit durch den Programmierer gesteuert werden, bilden sie in der parallelen Programmierung selbststΓ€ndige Einheiten, die bei der LΓΆsung von gestellten Aufgaben kooperieren und sich dabei koordinieren und synchronisieren mΓΌssen. Die Klasse Hamster, von der Hamster erzeugt werden, ist von der Klasse Thread abgeleitet, so dass bei der parallelen Programmierung mit dem Java-Hamster-Modell alle Eigenschaften und Funktionen der Thread-Programmierung genutzt werden kΓΆnnen.
Siehe auch
Literatur
β’ Dietrich Boles: Programmieren spielend gelernt mit dem Java-Hamster-Modell. 5. Auflage. Springer Vieweg, 2013, ISBN 978-3-8348-0640-6.
β’ Dietrich Boles, Cornelia Boles: Objektorientierte Programmierung spielend gelernt mit dem Java-Hamster-Modell. 3. Auflage. Springer Vieweg, 2014, ISBN 978-3-658-04802-0.
β’ Dietrich Boles: Parallele Programmierung spielend gelernt mit dem Java-Hamster-Modell. Programmierung mit Java-Threads. Vieweg+Teubner, 2008, ISBN 978-3-8351-0229-3.
Weblinks